package strategy.b;

/**
 *
 * @author Mike
 *
 */
public class MiniDuckSimulator {

	public static void main(String[] args) {
//		Duck duck = new RubberDuck();
//		duck.performFly();
//		duck.performQuack();
//		duck.setFlyBehavior(
//				new FlyWithFireBalloon());
//		duck.performFly();
		
		Duck duck = new TangLaoYa();
		//duck.performSpeak();
		//duck.setSpeakBehavior(new SpeakInChinese());
		//duck.performSpeak();
		
		duck.setFlyBehavior(new FlyWithWings());
		duck.setQuackBehavior(new Quack());
		duck.setSpeakBehavior(new SpeakInEnglish());
		
		duck.display();
		duck.performFly();
		duck.performQuack();
		duck.performSpeak();
		
		Duck secondDuck = new MechanicalDuck();
		secondDuck.performFly();
		secondDuck.performQuack();
		secondDuck.performSpeak();
		
		secondDuck.setSpeakBehavior(new SpeakInEnglish());
		
		secondDuck.performSpeak();
		
	}

}
